Culminating Project

❓❓❓

Due: June 19th (HARD DEADLINE - CAN’T EXTEND)


For our final project together, you almost have total freedom of choice! You can even pick the name of the culminating project!

The goals of the project are for you to:


For this project, you will apply what you have learned throughout the course to create the back-end of an application. You will have to teach yourself how to code the front-end.

You will have two options for how to achieve this:

You will be allowed to freely select what you build and whether you work with a partner or not. If you decide to work with a partner, you may also select who you would like to work with. However, the more people on the project increases the scale of your program!

Project Stages
Your project will be divided in 3 stages, each with different deadlines.

Daily Log
As you work on your culminating project, you are required to log your daily progress. A template will be provided for those working individually and in pairs. The daily log will be graded as part of your final mark. You will be required to submit this as a
Google Doc. Other formats will not be accepted. Assume the change history will be checked.

Idea Selection
It is also
your responsibility to select something that can be completed before the hard deadline of June 19th. I will be there to give feedback and suggestions on the scale of your idea at the proposal stage! Ultimately you will make the final decision on what you build though. You may not pick to build something you have already built in the past.

Here are some ideas that are sufficient and some ideas that are insufficient, to give you an idea of an appropriate scale for this task.

 Ideas that are sufficient                                                                Ideas that are too simple

  • Clue, Mafia/Werewolf, Battleship, Guess Who, other board games
  • Papers Please
  • Yahtzee, Zombie Dice
  • Family Feud
  • Uno, other card games
  • Simple platformer games
  • Galaga, Pacman, other arcade games
  • Some form of database
  • Make use of a third-party Java library (e.g. OpenCV)
  • Use a third-party Web API (public APIs)

  • Any CYOA game
  • A text-based story driven game
  • RPGs must have some unique mechanic which can be explained in the proposal
  • Trivia / quiz games
  • War (the card game)
  • Pig (the dice game)
  • Hangman / Wordle
  • Mastermind (board game)

I am genuinely very excited to see what you come up with for this project! 🙌

Code Requirements
Below you will find the requirements for your project. Each person working on the project will need to fulfill this checklist.
(For example, if the checklist says 1 while loop, an individual will have to create a minimum of 1 while loop. A set of partners will have to create a minimum of 2 while loops.)

Minimum requirements per individual:

  • GUI I/O
  • 2 conditional structures (e.g. switch, if-else)
  • 2 control structures (e.g. while, for)
  • 1 advanced data structures (2D array, Deque)
  • A superclass with at least 1 subclass
  • Modularity (OOP with classes and methods)
  • Private fields in classes
  • Use of parameters & return
  • Commenting as per the standard taught throughout the course

Grading Scheme

Each deliverable will be given a portion of your final culminating mark.

Deliverable

Percentage of Final

Deliverable

Percentage of Final

Proposal Document

20%

Daily log

15%

Check-in Meeting

10%

Coded Application

55%

Remember that the culminating mark will make up 15% of your overall mark in our course.

Proposal

Criteria

  • Level 1: Proposal is missing significant sections of planning
  • Level 2: Proposal is missing some sections of planning
  • Level 3: Proposal is completed but may lack some detail that would clarify the idea
                 and how it will be executed
  • Level 4: Significant detail and evidence of thinking is demonstrated in the
                  completion of the Proposal; a clear project and timeline can be understood
  • Level 4+: Thorough completion of all aspects of the Proposal leave few to no
                    follow-up questions to be asked about what the idea is or how it will be
                    executed

                                      Total points:                                                                               /20

Check-in Meeting

Criteria

  • 1 mark: Progressed project submitted on Google Classroom as a zipped folder
  • 1 mark: Verbal description of what has been accomplished
  • 4 marks: Upkeep of daily log
  • 2 marks: Reasonable fulfillment of Proposal goals
  • 2 marks: Accountable, thorough reflection on future goals

                                      Total points:                                                                                /10

Daily Log

Criteria

  • Level 1: Incomplete timely entries for less than half of the culminating period
  • Level 2: Timely, full entries for less than half of the culminating period
  • Level 3: Timely, full entries for 70% of the culminating period
  • Level 4: Timely, full, detailed entries for 90% of the culminating period
  • Level 4+: Timely, full, detailed entries for each day of the culminating period

                                      Total points:                                                                               /20

Coded Application

The rubric below was created with all 3 ICS4U classes, based on our class discussions on how the application should be evaluated.

Each criteria is out of 100. The final mark will average all criteria below as 95% of the final mark, with the remaining 5% reserved for creativity and ambition.

Criteria

Deduction

Functionality, Debugging, Compilation

(-0) No bugs or logic errors.

(-5) Edge cases with rare crashes with a non-intended input.

(-10) Common, minor bugs.

(-20) Errors or crashes during expected input.

(-50) Does not run at all, but has code that attempts to address proposal

(-100) No program handed in.

Meeting requirements

(-0) Meets the whole checklist.

(-2) Missing 1 requirement (possibly with reason), made up by another feature.

(-10) Missing 1-2 requirements.

(-30) Missing more than 2 requirements, but includes some.

(-50) No requirements met, but code exists.

(-100) No program handed in.

Modularity

(-0) No violations of SRP.

(-2) Some evidence of SRP, but there are few instances where the structure could be more modular.

(-10) Some overly complex methods, but has methods and classes.

(-20) No classes.

(-40+1) No methods, but +1 for respect.

(-100) No program handed in.

Readability (Variable naming, javadocs, comments, white-spacing)

(-0) Informative variable names with a purpose, not overly commented, proper method and class headers.

(-2) Commented, but not properly styled.

(-5) Some inconsistencies in naming, some uncommented portions of code.

(-15) No comments, but the code is readable.

(-30) Code is messy and confusing.

(-50) Code is unreadable.

(-100) No program handed in.

Criteria

Deduction

User friendliness

(-0) Any instructions are clear, design is intuitive, clear what input is expected, looks great.

(-2) All of the above, but the design is basic.

(-10) Users are able to navigate the program on their own, but there is confusion at times.

(-25) User requires clarification from the programmer to understand how to use the program.

(-50) Both user and programmer cannot figure out how to use the program.

(-90) Console based.

Criteria

Deduction

Creativity, Ambition

(5% of overall coded program mark)

(-0%) If the project is an adaptation of an existing idea, additional coded features are included.

(-5%) Program doesn’t have any additional coded features that display creativity or ambition.